///*******************************************************************************
// * Copyright (c) 2000, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.tests.internal;
//
//import org.eclipse.jface.text.TextSelection;
//import org.eclipse.jface.text.source.IVerticalRuler;
//import org.eclipse.jface.text.source.SourceViewer;
//import org.eclipse.jface.viewers.ISelection;
//import org.eclipse.jface.viewers.SelectionChangedEvent;
//import org.eclipse.swt.graphics.Point;
//import org.eclipse.swt.widgets.Composite;
//
//public class ExtendedSourceViewer extends SourceViewer {
//
//    /**
//     * Constructs a new source viewer. The vertical ruler is initially visible.
//     * The viewer has not yet been initialized with a source viewer configuration.
//     *
//     * @param parent the parent of the viewer's control
//     * @param ruler the vertical ruler used by this source viewer
//     * @param styles the SWT style bits
//     */
//    public ExtendedSourceViewer(Composite parent, IVerticalRuler ruler,
//            int styles) {
//        super(parent, ruler, styles);
//    }
//
//    /*
//     * @see Viewer#getSelection()
//     */
//    public ISelection getSelection() {
//        Point p = getSelectedRange();
//        if (p.x == -1 || p.y == -1)
//            return TextSelection.emptySelection();
//
//        return new ExtendedTextSelection(getDocument(), p.x, p.y);
//    }
//
//    /**
//     * Sends out a selection changed event to all registered listeners.
//     *
//     * @param offset the offset of the newly selected range
//     * @param length the length of the newly selected range
//     */
//    protected void selectionChanged(int offset, int length) {
//        ISelection selection = new ExtendedTextSelection(getDocument(), offset,
//                length);
//        SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
//        fireSelectionChanged(event);
//    }
//}
//
